前面的章节笔者已经介绍了Cortex-M的开发环境搭建与使用,由于STM32的使用比较广,因此本文针对STM32介绍下STM32CubeMX的安装与使用。
STM32CubeMX是STM32初始化代码生成器,开发者可以直接使用该软件进行可视化配置,大大节省开发时间,因此,在实际项目开发过程中,STM32CubeMX还是很方便的,推荐大家使用。
5.1 JDK安装
安装STM32CubeMX之前,电脑中要有java运行时环境(JRE),否则会报错:
因为STM32Cube是Java写的,不然怎么能跨平台,这也是为什么在安装前需要检查Java环境。如果你安装过JDK,那么跳过此步骤即可。
STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。
第一步:下载后双击JavaSetup8u261.exe即可安装JRE。
接受许可,根据自己电脑系统选择下载(我以Windows版本为例),如下图:
第二步:按照提示完成安装
第三步:查看是否安装成功
打开命令提示符,输入java会有如下显示,则安装成功。
注意:打开命令提示符方法
win+R 输入cmd 即可。
还可以查看Jre版本:
Java -version
5.2 STM32CubeMX安装
5.2.1 STM32CubeMX下载
首先去ST官网下载STM32CubeMX。
下载后,解压压缩包,会有如下四个文件。
SetupSTM32CubeMX-6.0.1.app文件夹是MAC系统的安装包,SetupSTM32CubeMX-6.0.1.linux是Linux系统的安装脚本,安装时需要将整个压缩文件放在Linux系统中的某个目录下按安装,Linux系统安装时其实调用的SetupSTM32CubeMX-6.0.1.exe文件,因此需要将SetupSTM32CubeMX-6.0.1.exe和一同放在Linux系统才能进行安装,SetupSTM32CubeMX-6.0.1.exe是Windows的安装包,笔者使用的Windows 10系统,在Windows安装只需要SetupSTM32CubeMX-6.0.1.exe文件即可。不管任何系统,除了初始化安装方式不一样,安装过程都是一样的。好了,我们开始安装吧。
5.2.2 STM32CubeMX安装
双击SetupSTM32CubeMX-6.0.1.exe,开始安装。
同意许可声明,然后点击“next”。
同意ST privacy and Teams of use,点击“next”。
选择安装路径。
接下来就是开始安装。
等待安装完成。
5.3 HAL库安装
5.3.1 HAL库在线安装
打开安装好的 STM32CubeMX 软件, 进入库管理界面(Help -> Manage embedded…),会有一个列表, 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:
这种方式比较简单,需要联网在线下载,可能需要等待一段时间。如果刷新之后,可以看到最新版本,以及一些老版本HAL库。
等待安装完成即可。
5.3.2 HAL库离线安装
离线安装的前提是需要下载好离线包,方法有两种:1.从库管理界面直接导入离线包。2.直接解压离线包到指定路径下。
1.导入离线包
2.直接解压
先在Help -> Updater Settings设置HAL库路径
直接解压HAL库离线包,放在前面设置的库路径下。
5.4新建工程
接下来从选择自己型号MCU,到生成代码并成功运行的创建过程。
1.打开STM32CubeMX,进入MCU选择器
进入选择器时会联网更新数据库,可能需要等待一下。
2.选择对应型号MCU
【注】第一次使用某单片机,在点击生成代码以后,如果没有相应的固件,STM32CubeMX软件会提示需要下载固件,点击确定即可在线下载。保持联网,在线安装很快,当然也可先安装HAL库,参见上一节内容。
3.时钟源选择
如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC(如下图)。如果使用默认内部时钟(HSI),这一步可以略过。
4.选择GPIO(LED)引脚
我这里使用一个GPIO引脚(PB0)控制LED亮灭。
以点亮LED为例。在我的电路中,LED1连接的引脚是PB0,我把引脚PB0设置为输出。
5.配置时钟Clock
STM32CubeMX配置时钟的界面非常方便,有很多提示(比如最大时钟),很多地方直接点击选择就行了。默认高速时钟是使用内部(HSI),而且CPU时钟配置的比较低。以我选择的STM32F103,外部8M晶振为例(如下图)。
6.工程管理
工程管理器的内容比较多,大部分都默认即可,这里讲述几个要点(如下图)
值得注意的是,如果想使用GCC或者其他编译工具,直接在‘Toolchain/IDE’选择即可,然后就可进行应用开发,不需要考虑工程搭建,非常方便。
7.生成代码
以上操作就基本配置完成了一个简单的示例工程,只需要点击“生成代码”即可。
8.添加代码
当然,以上生成的代码还不够完善,需要添加自己的应用代码。添加在主函数添加一下应用代码:
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_Delay(500);
加如上所示的代码,你开发板上LED就会间隔500ms变化一次(呈现闪烁状态)。
【注】
1.延时500ms时间需要你时钟配置正确。
2.LED对应引脚需要与你开发实际一致(本文以PB0为例)。
3.生成的MDK-ARM工程,编译后在线下载或者通过ISP下载到板子上,然后复位即可看到实验现象。
关于程序的下载与调试后文会详细讲解。
欢迎访问我的网站
BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎
资源获取方式
1.关注公众号[嵌入式实验楼]
2.在公众号回复关键词[Cortex-M]获取资料提取码